<?php

namespace app\api\model;

use think\Model;

/**
 * Model模型定义
 * 模型类似于SpringBoot开发中的模型，但并不完全一样；模型的特点如下：
 * 1.Model模型会自动对应数据表
 * 2.通过Model模型可以快速进行增删改查操作
 * 3.Model模型是可复用
 * 4.Model模型是可继承
 * 5.Model模型是可扩展
 * 6.减少了代码量，配置即可入手
 */
class Student extends Model{
    /**
     * 模型当中我们不需要定义字段信息，会自动识别并对应；以下是模型可配置参数：
     *
     * <table>
     * <tr>
     * <th>属性</th>
     * <th>描述</th>
     * </tr>
     * <tr>
     * <td>name</td>
     * <td>模型名（相当于不带数据表前后缀的表名，默认为当前模型类名）</td>
     * </tr>
     * <tr>
     * <td>table</td>
     * <td>数据表名（默认自动获取）</td>
     * </tr>
     * <tr>
     * <td>suffix</td>
     * <td>数据表后缀（默认为空）</td>
     * </tr>
     * <tr>
     * <td>pk</td>
     * <td>主键名（默认为id）</td>
     * </tr>
     * <tr>
     * <td>connection</td>
     * <td>数据库连接（默认读取数据库配置）</td>
     * </tr>
     * <tr>
     * <td>query</td>
     * <td>模型使用的查询类名称</td>
     * </tr>
     * <tr>
     * <td>field</td>
     * <td>模型允许写入的字段列表（数组）</td>
     * </tr>
     * <tr>
     * <td>schema</td>
     * <td>模型对应数据表字段及类型</td>
     * </tr>
     * <tr>
     * <td>type</td>
     * <td>模型需要自动转换的字段及类型</td>
     * </tr>
     * <tr>
     * <td>strict</td>
     * <td>是否严格区分字段大小写（默认为true）</td>
     * </tr>
     * <tr>
     * <td>disuse</td>
     * <td>数据表废弃字段（数组）</td>
     * </tr>
     * </table>
     */

    /**
     * @var string 模型名
     */
    protected $name = 'student';

    /**
     * @var string 数据表名
     */
    protected $table = 'student';

    /**
     * @var string 主键名
     */
    protected $pk = 'id';

    /**
     * @var string[] 数据表字段及类型
     */
    protected $schema = [
        'id' => 'int',
        'name' => 'varchar',
        'sex' => 'varchar',
        'birth' => 'int',
        'department' => 'varchar',
        'address' => 'varchar'
    ];
}